CREATE TABLE [dbo].[ProgramGroup]
(
[ProgramGroupKey] [uniqueidentifier] NOT NULL,
[ProgramGroupName] [nchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[ProgramGroupDescription] [nchar] (1023) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ProgramGroupStatusCode] [nchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[CreatedByUserKey] [uniqueidentifier] NOT NULL,
[UpdatedOn] [datetime] NOT NULL,
[UpdatedByUserKey] [uniqueidentifier] NOT NULL,
[MarkedForDeleteOn] [datetime] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ProgramGroup] ADD CONSTRAINT [PK_ProgramGroup_ProgramGroupKey] PRIMARY KEY CLUSTERED ([ProgramGroupKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ProgramGroup_CreatedByUserKey] ON [dbo].[ProgramGroup] ([CreatedByUserKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ProgramGroup_ProgramGroupStatusCode] ON [dbo].[ProgramGroup] ([ProgramGroupStatusCode]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ProgramGroup_UpdatedByUserKey] ON [dbo].[ProgramGroup] ([UpdatedByUserKey]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ProgramGroup] ADD CONSTRAINT [FK_ProgramGroup_ProgramGroupStatusRef] FOREIGN KEY ([ProgramGroupStatusCode]) REFERENCES [dbo].[ProgramGroupStatusRef] ([ProgramGroupStatusCode])
GO
ALTER TABLE [dbo].[ProgramGroup] ADD CONSTRAINT [FK_ProgramGroup_UserMain_CreatedBy] FOREIGN KEY ([CreatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
ALTER TABLE [dbo].[ProgramGroup] ADD CONSTRAINT [FK_ProgramGroup_UserMain_UpdatedBy] FOREIGN KEY ([UpdatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO